package com.mall.dubbo.api;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tanhua.model.domain.*;

import java.util.List;

public interface SmsHomeBrandApi {
    /**
     * 分页查询推荐品牌
     * @param brandName
     * @param recommendStatus
     * @param page
     * @return
     */
    Page<SmsHomeBrand> brandList(String brandName, Integer recommendStatus, Page<SmsHomeBrand> page);

    /**
     * 批量修改推荐品牌状态
     * @param ids
     * @param recommendStatus
     * @return
     */
    void updateRecommendStatus(List<Long> ids, Integer recommendStatus);

    /**
     * 修改推荐品牌排序
     * @param smsHomeBrand
     * @return
     */
    void updateSort(SmsHomeBrand smsHomeBrand);
    /**
     * 添加首页推荐品牌
     * @param smsHomeBrand
     * @return
     */
    void create(List<SmsHomeBrand> smsHomeBrand);
    /**
     * 批量删除推荐品牌
     * @param ids
     * @return
     */
    void delete(List<Integer> ids);

    /**
     * 分页查询首页新品
     * @param productName
     * @param recommendStatus
     * @param page
     * @return
     */
    Page newProductList(String productName, Integer recommendStatus, Page<SmsHomeNewProduct> page);

    /**
     * 分页查询推荐
     * @param productName
     * @param recommendStatus
     * @param page
     * @return
     */
    Page recommendProductList(String productName, Integer recommendStatus, Page<SmsHomeRecommendProduct> page);

    /**
     * 分页查询专题推荐
     * @param subjectName
     * @param recommendStatus
     * @param page
     * @return
     */
    Page recommendSubjectList(String subjectName, Integer recommendStatus, Page<SmsHomeRecommendSubject> page);

    /**
     * 分页查询广告
     * @param endTime
     * @param type
     * @param name
     * @param page
     * @return
     */
    Page advertiseList(String endTime, Integer type, String name, Page<SmsHomeAdvertise> page);


    /**
     *  添加首页新品
     * @param smsHomeNewProduct
     * @return
     */
    void createNewProduct(List<SmsHomeNewProduct> smsHomeNewProduct);

    /**
     * 批量删除首页新品
     * @param ids
     * @return
     */
    void deleteNewProduct(List<Integer> ids);

    /**
     * 批量修改首页新品状态   是否推荐
     * @param ids
     * @param recommendStatus
     * @return
     */
    void updateNewProductRecommendStatus(List<Long> ids, Integer recommendStatus);
    /**
     * 修改首页新品排序
     * @param smsHomeNewProduct
     * @return
     */
    void updateNewProductSort(SmsHomeNewProduct smsHomeNewProduct);

    /**
     * 添加人气推荐
     * @param smsHomeRecommendProduct
     * @return
     */
    void createRecommendProduct(List<SmsHomeRecommendProduct> smsHomeRecommendProduct);

    /**
     * 批量删除人气推荐
     * @param ids
     * @return
     */
    void deleteRecommendProduct(List<Integer> ids);
    /**
     * 批量修改人气推荐   是否推荐
     * @param ids
     * @param recommendStatus
     * @return
     */
    void updateRecommendProductRecommendStatus(List<Long> ids, Integer recommendStatus);
    /**
     * 修改人气排序
     * @param smsHomeRecommendProduct
     * @return
     */
    void updateRecommendProductSort(SmsHomeRecommendProduct smsHomeRecommendProduct);

    /**
     * 添加首页推荐专题
     * @param smsHomeRecommendSubject
     * @return
     */
    void recommendSubjectCreate(List<SmsHomeRecommendSubject> smsHomeRecommendSubject);

    /**
     * 批量删除专题推荐
     * @param ids
     * @return
     */
    void deleteRecommendSubject(List<Integer> ids);

    /**
     * 批量修改专题推荐   是否推荐
     * @param ids
     * @param recommendStatus
     * @return
     */
    void updateRecommendSubjectRecommendStatus(List<Long> ids, Integer recommendStatus);

    /**
     * 修改专题推荐排序
     * @param smsHomeRecommendSubject
     * @return
     */
    void updateRecommendSubjectSort(SmsHomeRecommendSubject smsHomeRecommendSubject);

    /**
     * 添加广告
     * @param smsHomeAdvertise
     * @return
     */
    void advertiseCreate(SmsHomeAdvertise smsHomeAdvertise);


    /**
     * 批量删除广告
     * @param ids
     */
    void deleteAdvertise(List<Integer> ids);

    /**
     * 修改广告上下线状态
     * @param smsHomeAdvertise
     */
    void updateAdvertiseStatus(SmsHomeAdvertise smsHomeAdvertise);

    /**
     * 修改广告
     * @param smsHomeAdvertise
     * @return
     */
    void updateAdvertise(SmsHomeAdvertise smsHomeAdvertise);

    /**
     * 获取广告详情
     * @param id
     * @return
     */
    SmsHomeAdvertise getAdvertiseById(Long id);
}
